﻿using System.Windows.Input;
using PaklenaBasta.MAUI.Services;

namespace PaklenaBasta.MAUI;

public class LoginViewModel : BindableObject
{
    private readonly ApiService _api;

    public LoginViewModel(ApiService api)
    {
        _api = api;
        LoginCommand = new Command(async () => await DoLogin());
    }

    public string Email { get; set; } = string.Empty;
    public string Password { get; set; } = string.Empty;

    public ICommand LoginCommand { get; }

    private async Task DoLogin()
    {
        var result = await _api.LoginAsync(Email, Password);
        if (result == null)
        {
            await Application.Current.MainPage.DisplayAlert("Error", "Login failed", "OK");
            return;
        }

        _api.SetToken(result.Token);
        // Navigate to Home
        var homeVm = App.Current.Services.GetService(typeof(HomeViewModel)) as HomeViewModel;
        await Application.Current.MainPage.Navigation.PushAsync(new Views.HomePage { BindingContext = homeVm });
    }
}
